namespace AbstractClass.IO
{
    /// <summary>
    /// Represents a file extension association details.
    /// </summary>
    /// <remarks>CREDIT: The code has been taken from Sharpdevelop's FiletypeRegisterer addin.</remarks>
    public class FiletypeAssociation
    {
        /// <summary>
        /// Initializes a new instance of the <see cref="FiletypeAssociation"/> class.
        /// </summary>
        /// <param name="extension">The file extension (without .).</param>
        /// <param name="icon">The default file icon.</param>
        /// <param name="text">The description text.</param>
        /// <param name="progId">The unique program id.</param>
        public FiletypeAssociation(string extension, string icon, string text, string progId)
        {
            Extension = extension;
            Icon = icon;
            Text = text;
            ProgId = progId;
        }

        /// <summary>
        /// Gets the file extension.
        /// </summary>
        /// <value>The file extension.</value>
        public string Extension { get; private set; }

        /// <summary>
        /// Gets the default file icon.
        /// </summary>
        /// <value>The default file icon.</value>
        public string Icon { get; private set; }

        /// <summary>
        /// Gets the file type description.
        /// </summary>
        /// <value>The description text.</value>
        public string Text { get; private set; }

        /// <summary>
        /// Gets the unique program id.
        /// </summary>
        /// <value>The unique program id.</value>
        public string ProgId { get; private set; }
    }
}